The issue of computer security concerns has been multiplied by the recent explosion in the widespread implementation and availability of computer-based systems, over a variety of platforms. Advances in computer and integrated circuit manufacturing technologies have permitted the widespread deployment of powerful portable computers, commonly referred to as “notebook” or “laptop” computers. A still-smaller type of computer system that has become popular is the personal digital assistant (PDA), operating according under the PALM, Windows Mobile (WM) or other operating systems. Many additional electronic devices also now can be considered to be computer systems. For example, modern wireless telephone handsets are effectively computer systems, under the control of a microprocessor or microprocessor-like central processing unit that accesses local memory. Especially when implemented into the so-called 2.5 G and 3 G wireless services, these modern wireless telephone handsets carry out computer-like functions including Internet browsing, email functionality, and the like. Other non-traditional computer platforms include Internet appliances, web pads, biometrics, medical devices and the like. These new computer platform implementations and their increased connectivity to the Internet, especially using wireless technology, are also vulnerable to security attacks, in some ways more so than conventional desktop computer workstations.
Conventional “bootloader” routines are commonly used in modern computer systems, in virtually all platforms. A typical bootloader is a sequence of instructions for system initialization. The bootloader sequence is typically maintained in “firmware”, such as electrically-alterable or hard-coded read-only memory (ROM) in which the stored data persists after power-down. Upon power-up or system reset, the bootloader sequence is executed by the central processing unit (CPU), to transfer operating system code from another persistent store (e.g., a hard disk drive in a conventional computer, or non-volatile memory in a portable device) into system program memory for execution. The bootloader then passes control to this operating system code. In certain flash non-volatile memories of the prior art, it has been customary to provide a “write protect” pin associated with a memory chip package to prevent program and erase operations to certain locations, such as a boot block sector (a sector in a flash memory device is simply a partition of the memory array itself). It is desirable to protect some of these sectors against intentional or malicious program and erase operations. For example, the sectors storing the boot code, the configuration data, the operating system, and the main program code would most likely need to be protected. If any of these sectors were to be inadvertently erased or programmed with erroneous information, then the system would not function properly. The sectors allocated for user data storage are less critical and would not have an impact on the basic system operation if they were erased and reprogrammed, so they would most likely not need to be protected. In general, security breaches in the nature of malware (i.e., viruses, worms, “bot” or “zombie” operation, and the like) have exacted a significant economic cost on modern communications and computing systems. As the number of mobile devices grows, the possibility of serious security breaches will also increase.
Therefore providing security in a computing system is desired.